Due to ever increasing video resolutions, and rising expectations for high quality video images, a high demand exists for efficient image data compression of video while performance is limited for coding with existing video coding standards such as H.264/AVC (advanced video coding), H.265/HEVC (High Efficiency Video Coding) standards, and so forth. The aforementioned standards use expanded forms of traditional approaches to address the insufficient compression/quality problem, but the results are still insufficient.
Each of these typical video coding systems uses an encoder that generates data regarding video frames that can be efficiently transmitted in a bitstream to a decoder and then used to reconstruct the video frames. This data may include the image luminance and color pixel values as well as intra and inter-prediction data, filtering data, residuals, and so forth that provide lossy compression so that the luminance and color data of each and every pixel in all of the frames need not be placed in the bitstream. Once all of these lossy compression values are established by an encoder, one or more entropy coding methods, which is lossless compression, then may be applied. The decoder that receives the bitstream then reverses the process to reconstruct the frames of a video sequence.
Relevant here, the inter-prediction data may include data to reconstruct reference frames by using motion vectors that indicate the movement of image content between a reference frame and another frame being reconstructed (or decoded), and from the same sequence of frames. Conventionally, all decoded frames including reference frames are placed in temporary memory, such as RAM, while the reference frames may be fetched by a decoder to use the reference frames to decode other frames. This often requires a large memory transaction bandwidth that may result in delays to fetch the frames from such an external (or off-board) memory as well as require RAM with a large capacity to hold a buffer for decoded reference frames. Also, this is especially troublesome when the reference frames are provided in a higher image fidelity (high resolution system formats) such as HDR or others as mentioned herein where the amount of sampling and bit-depth is greater. These higher resolution reference frames are extremely large such that the capacity needed to store the reference frames in non-cache memory so that a decoder can fetch and use the reference frames to decode other frames may be the system limiter for providing high quality video experiences with these playback configurations. In one solution, reference frames may be placed in cache during decoding in order to reduce the DRAM or main memory bandwidth, reduce power, and improve latency tolerance. These techniques have been found to be inadequate due to inefficient techniques to determine whether a frame in a video sequence is actually going to be used as a reference frame, and in turn, whether and how long to keep the reference frame in the cache, resulting in relatively low cache hit rates.